#pragma once
namespace ParaEngine
{
#define DECLARE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
		const GUID name \
				= { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }

	/* {3cf169ce-ff7c-44ab-93c0-f78f62d172e2} */
	DECLARE_GUID(TID_XSkinMeshHeader,
	0x3cf169ce, 0xff7c, 0x44ab, 0x93, 0xc0, 0xf7, 0x8f, 0x62, 0xd1, 0x72, 0xe2);

	/* {b8d65549-d7c9-4995-89cf-53a9a8b031e3} */
	DECLARE_GUID(TID_VertexDuplicationIndices,
	0xb8d65549, 0xd7c9, 0x4995, 0x89, 0xcf, 0x53, 0xa9, 0xa8, 0xb0, 0x31, 0xe3);

	/* {6f0d123b-bad2-4167-a0d0-80224f25fabb} */
	DECLARE_GUID(TID_SkinWeights,
	0x6f0d123b, 0xbad2, 0x4167, 0xa0, 0xd0, 0x80, 0x22, 0x4f, 0x25, 0xfa, 0xbb);

//////////////////////////////////////////////////////////////////////////
/// ParaX model 
//////////////////////////////////////////////////////////////////////////

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ParaEngine,
0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_Sequences,
0x00000001, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_Anim,
0x00000002, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_AlphaSet,
0x00000010, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_Alpha,
0x00000011, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_AlphaKey,
0x00000012, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/**
--------------------------------------------------------------------------
new model 
--------------------------------------------------------------------------
*/

/* {10000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ParaXHeader,
0x10000000, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);


/* {10000000-1234-0000-0000-123456789000} */
DECLARE_GUID(TID_ParaXRefObject,
0x10000000, 0x1234, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {10000000-1234-0001-0000-123456789000} */
DECLARE_GUID(TID_ParaXRefSection,
0x10000000, 0x1234, 0x0001, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelAnimation,
0x10000002, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_AnimationBlock,
0x10000003, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelBoneDef,
0x10000004, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelTexAnimDef,
0x10000005, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelVertex,
0x10000006, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

DECLARE_GUID(TID_ModelView,
0x10000007, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelGeoset,
0x10000008, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelTexUnit,
0x10000009, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelRenderFlags,
0x1000000a, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelColorDef,
0x1000000b, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelTransDef,
0x1000000c, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

DECLARE_GUID(TID_ModelTextureDef,
0x1000000d, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelLightDef,
0x1000000e, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelCameraDef,
0x1000000f, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelParticleParams,
0x10000010, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelParticleEmitterDef,
0x10000011, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelRibbonEmitterDef,
0x10000012, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelBlockQ,
0x10000013, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* {00000000-0000-0000-0000-123456789000} */
DECLARE_GUID(TID_ModelAttachmentDef,
0x10000014, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

/* ParaXBody contains array blocks */
DECLARE_GUID(TID_ParaXBody,
0x20000000, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
/* array blocks */
DECLARE_GUID(TID_XVertices,
0x20000001, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XTextures,
0x20000002, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XAttachments,
0x20000003, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XColors,
0x20000004, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XViews,
0x20000005, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XIndices0,
0x20000006, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XGeosets,
0x20000007, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XRenderPass,
0x20000008, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XBones,
0x20000009, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XTexAnims,
0x2000000a, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XParticleEmitters,
0x2000000b, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XRibbonEmitters,
0x2000000c, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XCameras,
0x2000000d, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XLights,
0x2000000e, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XAnimations,
0x2000000f, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XDWORDArray,
0x20000010, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);
DECLARE_GUID(TID_XTransparency,
0x20000011, 0x0000, 0x0000, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0x00);

}
